package com.example.service1.common.config;

import feign.Logger;
import feign.Request;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

//如果使用@Configuration，则会导致整个容器都拥有该@bean，即相当于全局配置FeignClient的configuration
@Configuration
public class FeignConfig {

    /**
     * 设置feign的日志等级。
     * 默认是NONE，即不进行任何日志信息，性能最高，适合生产环境下。
     * FULL：打印所有日志信息
     * 注意：springboot的日志级别为INFO，而Feign的日志级别为DEBUG级别，所以是不会打印Feign的日志
     * 日志级别由高到低：error、warn、info、debug、trace
     * 设置feign的日志级别
     * feign:
     *  client:
     *      config:
     *          服务名:
     *              loggerLevel: 日志级别
     * 所以可以设置springboot的日志级别
     * #建议不要这样设置，因为springboot的debug日志贼多
     * logging:
     *      level: debug
     * # 设置指定包路径下的日志级别
     * logging:
     *      level:
     *          com.example.service1.common.api: debug
     */
    @Bean
    public Logger.Level feignLoggerLevel(){
        return Logger.Level.FULL;
    }

    /**
     * 发现yaml配置超时时间失败
     * @return
     */
    @Bean
    public Request.Options options(){
        Request.Options options = new Request.Options();
        return options;
    }
}
